package com.fosu.service;

import com.alibaba.fastjson.JSONObject;
import com.fosu.common.ResponseResult;
import com.fosu.domain.Comment;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * Desription
 *
 * @author manno
 * @date 2020/10/21
 */
public interface CommentService
{
    /**根据商品id获取评论
     * @param currentPage 当前页数
     * @param pageSize 页大小
     * @param productId 商品id
     * @param resp HttpServlet响应对象
     * @return ResponseResult 响应对象
     * */
    ResponseResult findProductComments(HttpServletResponse resp,int currentPage,int pageSize,int productId);

    /**根据评论id寻找回复
     * @param commentId 评论id
     * @return  List<Comment> 评论下的回复集合
     * */
    List<Comment> findReplies(int commentId);

    /**查看点赞状态
     * @param userId 用户id
     * @param commentId 评论id
     * @param resp HttpServlet响应对象
     * @return ResponseResult 响应对象
     * */
    ResponseResult findIsFavorite(HttpServletResponse resp,Integer userId, Integer commentId);

    /**切换评论点赞状态
     * @param userId 用户id
     * @param commentId 评论id
     * @param resp HttpServlet响应对象
     * @return ResponseResult 响应对象
     * */
    ResponseResult switchWhetherToFavorite(HttpServletResponse resp,Integer userId,Integer commentId);

    /**发表评论
     * @param jsonPram JSONObject对象
     * @param resp HttpServlet 响应对象
     * @return ResponseResult 响应对象
     * @throws Exception
     */
    ResponseResult saveComment(HttpServletResponse resp, JSONObject jsonPram);

    /**
     * 根据用户id获取回复我的评论信息
     * @param resp
     * @param userId
     * @return
     */
    ResponseResult getFavoriteCommentByUserId(HttpServletResponse resp, Integer userId);


    /**获取回复我的总数
     * @param resp
     * @param userId
     * @return
     */
    ResponseResult getReplyToMECount(HttpServletResponse resp,Integer userId);

    /**
     * 获取新增回复我的数量
     * @param resp
     * @param userId
     * @return
     */
    ResponseResult getRecentlyReplyToMECount(HttpServletResponse resp,Integer userId) throws Exception;
}
